home *** CD-ROM | disk | FTP | other *** search
- /*
- * the class PLACE_PIN
- * Copyright (C) 1996, 1997 Kazutaka Hirata <khirata@jove.acs.unt.edu>
- */
-
- #include "../stdafx.h"
-
- #include "../common/bool.h"
-
- #include "plpin.h"
-
- void PLACE_PIN::PLACE_PIN_MOUSE_CURSOR::draw_cursor_core(KBAN_DRAW& draw, const PIN_ELEMENT& target)
- {
- draw.draw_primitive_pin_cursor(target);
- }
-
- STAGE* PLACE_PIN::init_new(KBAN_INFO& info, KBAN_DRAW& draw)
- {
- return new STAGE_PLACE_PIN;
- }
-
- const char* PLACE_PIN::get_name(void)
- {
- return "Place:Pin";
- }
-
- STAGE* PLACE_PIN::STAGE_PLACE_PIN::redraw(KBAN_INFO& info, KBAN_DRAW& draw)
- {
- m_mcur.redraw_cursor(draw);
- return this;
- }
-
- STAGE* PLACE_PIN::STAGE_PLACE_PIN::mouse_move(KBAN_INFO& info, KBAN_DRAW& draw, const XY& pc, UINT nFlags)
- {
- XY ac;
- info.grid().xy_pc2ac(pc, ac);
- PIN_ELEMENT current(ac, info.apt_pin());
- m_mcur.draw_cursor(draw, current);
- return this;
- }
-
- STAGE* PLACE_PIN::STAGE_PLACE_PIN::mouse_left_up(KBAN_INFO& info, KBAN_DRAW& draw, const XY& pc, UINT nFlags)
- {
- m_mcur.erase_cursor(draw);
-
- XY ac;
- info.grid().xy_pc2ac(pc, ac);
-
- PRIMITIVE& primitive = info.kban_data().primitive();
- uint layer = info.active_layer().get_pin_layer();
- PIN_LIST& pin_list = primitive.layer(layer).pin_list();
- PIN_ELEMENT pin_element(ac, info.apt_pin());
- pin_list.push_back(pin_element);
- info.SetModifiedFlag();
- info.new_state().set(true);
- info.new_state_str() = "Place Pin";
-
- draw.draw_primitive_pin(pin_element, layer);
- return this;
- }
-
- STAGE* PLACE_PIN::STAGE_PLACE_PIN::mouse_right_up(KBAN_INFO& info, KBAN_DRAW& draw, const XY& pc, UINT nFlags)
- {
- return NULL;
- }
-
- void PLACE_PIN::STAGE_PLACE_PIN::end(KBAN_INFO& info, KBAN_DRAW& draw)
- {
- m_mcur.erase_cursor(draw);
- }
-